package pokpok.dao;

import java.util.List;

import javax.jdo.PersistenceManager;
import javax.jdo.Query;
import javax.jdo.Transaction;

import com.google.appengine.api.datastore.Key;

import pokpok.domaine.Joueur;
import pokpok.domaine.Resultat;
import pokpok.domaine.Tournoi;

public class ResultatDAO extends GenericDAO<Resultat, Key> {

	public ResultatDAO() {
		super();
	}

	@SuppressWarnings("unchecked")
	public List<Resultat> findByJoueur(Joueur joueur) {
		PersistenceManager pm = getPM();
		Transaction tx = pm.currentTransaction();
		Query query = pm.newQuery(Resultat.class);
		try {
			tx.begin();
			query.setFilter("keyJoueur == keyJoueurParam");
			query.declareParameters("com.google.appengine.api.datastore.Key keyJoueurParam");
			List<Resultat> results = (List<Resultat>) query.execute(joueur
					.getId());
			tx.commit();
			return results;
		} catch (Exception e) {
			e.printStackTrace();
			return null;
		} finally {
			if (tx.isActive()) {
				tx.rollback();
			}
			query.closeAll();
			pm.close();
		}
	}

	@SuppressWarnings("unchecked")
	public List<Resultat> findByTournoi(Tournoi tournoi) {
		PersistenceManager pm = getPM();
		Transaction tx = pm.currentTransaction();
		Query query = pm.newQuery(Resultat.class);
		try {
			tx.begin();
			query.setFilter("keyTournoi == keyTournoiParam");
			query.declareParameters("com.google.appengine.api.datastore.Key keyTournoiParam");
			List<Resultat> results = (List<Resultat>) query.execute(tournoi
					.getId());
			tx.commit();
			return results;
		} catch (Exception e) {
			e.printStackTrace();
			return null;
		} finally {
			if (tx.isActive()) {
				tx.rollback();
			}
			query.closeAll();
			pm.close();
		}
	}

}
